home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / xmasspak / noter / pack.inc < prev    next >
Encoding:
Text File  |  1996-03-26  |  1.4 KB  |  60 lines

  1. ;-------------------------------------------
  2. ; PACK-ROUTINE
  3. ;
  4. ;   ES = Register to source-segment
  5. ;   FS = Register to target-segment
  6. ;        Both segments always start at offset '0'
  7. ;-------------------------------------------
  8. pack_it:      xor si,si
  9.               xor di,di
  10.               
  11.               mov cl,129
  12.  
  13. p_x3:           mov al,[es:si]
  14.               mov ah,[es:si+1]
  15.               cmp al,ah
  16.               jne p_x1
  17.               inc cl
  18.               cmp cl,255
  19.               je p_p1
  20. p_x5:           inc si
  21.               cmp si,32*2000
  22.               jne p_x3
  23.  
  24.               mov [fs:di],cl
  25.               inc di
  26.               mov [fs:di],al
  27.               inc di
  28.               mov [byte fs:di],129
  29.               inc di
  30.               mov [fs:di],ah
  31.               inc di
  32.               
  33.               mov [ds:text_length],di
  34.               
  35.               ret
  36.  
  37. p_p1:           dec cl
  38.               jmp p_x2
  39.  
  40. p_x1:           cmp cl,129
  41.               je p_x4
  42. p_x2:           mov [fs:di],cl
  43.               inc di
  44.               mov [fs:di],al
  45.               inc di
  46.               mov cl,129
  47.               jmp p_x5
  48.  
  49. p_x4:           mov ah,al
  50.               and ah,10000000b
  51.               cmp ah,128
  52.               jne p_x6
  53.               mov [fs:di],cl
  54.               inc di
  55. p_x6:           mov [fs:di],al
  56.               inc di
  57.               mov cl,129
  58.               jmp p_x5
  59. ;-----------------------------------------------------
  60.